Apply Rules
curl --request POST \
--url https://api.sophra.org/api/nous/adapt/apply \
--header 'Content-Type: application/json' \
--data '
"{\r\n \"ruleIds\": [\r\n \"{{ruleId}}\"\r\n ],\r\n \"context\": {\r\n \"environment\": \"{{monitoring_context_environment}}\",\r\n \"service\": \"{{monitoring_context_service}}\",\r\n \"region\": \"{{monitoring_context_region}}\",\r\n \"currentLoad\": {{monitoring_context_currentLoad}},\r\n \"userCount\": {{monitoring_context_userCount}},\r\n \"resourceUtilization\": {\r\n \"cpu\": {{monitoring_context_resourceUtilization_cpu}},\r\n \"memory\": {{monitoring_context_resourceUtilization_memory}},\r\n \"disk\": {{monitoring_context_resourceUtilization_disk}}\r\n },\r\n \"timeOfDay\": \"{{monitoring_context_timeOfDay}}\"\r\n },\r\n \"metrics\": {\r\n \"response_time_ms\": {{monitoring_metrics_response_time_ms}},\r\n \"error_rate\": {{monitoring_metrics_error_rate}},\r\n \"success_rate\": {{monitoring_metrics_success_rate}},\r\n \"cache_hit_ratio\": {{monitoring_metrics_cache_hit_ratio}},\r\n \"query_complexity\": {{monitoring_metrics_query_complexity}},\r\n \"concurrent_requests\": {{monitoring_metrics_concurrent_requests}}\r\n }\r\n}"
'import requests
url = "https://api.sophra.org/api/nous/adapt/apply"
payload = "{
\"ruleIds\": [
\"{{ruleId}}\"
],
\"context\": {
\"environment\": \"{{monitoring_context_environment}}\",
\"service\": \"{{monitoring_context_service}}\",
\"region\": \"{{monitoring_context_region}}\",
\"currentLoad\": {{monitoring_context_currentLoad}},
\"userCount\": {{monitoring_context_userCount}},
\"resourceUtilization\": {
\"cpu\": {{monitoring_context_resourceUtilization_cpu}},
\"memory\": {{monitoring_context_resourceUtilization_memory}},
\"disk\": {{monitoring_context_resourceUtilization_disk}}
},
\"timeOfDay\": \"{{monitoring_context_timeOfDay}}\"
},
\"metrics\": {
\"response_time_ms\": {{monitoring_metrics_response_time_ms}},
\"error_rate\": {{monitoring_metrics_error_rate}},
\"success_rate\": {{monitoring_metrics_success_rate}},
\"cache_hit_ratio\": {{monitoring_metrics_cache_hit_ratio}},
\"query_complexity\": {{monitoring_metrics_query_complexity}},
\"concurrent_requests\": {{monitoring_metrics_concurrent_requests}}
}
}"
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify('{\r\n "ruleIds": [\r\n "{{ruleId}}"\r\n ],\r\n "context": {\r\n "environment": "{{monitoring_context_environment}}",\r\n "service": "{{monitoring_context_service}}",\r\n "region": "{{monitoring_context_region}}",\r\n "currentLoad": {{monitoring_context_currentLoad}},\r\n "userCount": {{monitoring_context_userCount}},\r\n "resourceUtilization": {\r\n "cpu": {{monitoring_context_resourceUtilization_cpu}},\r\n "memory": {{monitoring_context_resourceUtilization_memory}},\r\n "disk": {{monitoring_context_resourceUtilization_disk}}\r\n },\r\n "timeOfDay": "{{monitoring_context_timeOfDay}}"\r\n },\r\n "metrics": {\r\n "response_time_ms": {{monitoring_metrics_response_time_ms}},\r\n "error_rate": {{monitoring_metrics_error_rate}},\r\n "success_rate": {{monitoring_metrics_success_rate}},\r\n "cache_hit_ratio": {{monitoring_metrics_cache_hit_ratio}},\r\n "query_complexity": {{monitoring_metrics_query_complexity}},\r\n "concurrent_requests": {{monitoring_metrics_concurrent_requests}}\r\n }\r\n}')
};
fetch('https://api.sophra.org/api/nous/adapt/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sophra.org/api/nous/adapt/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode('{
"ruleIds": [
"{{ruleId}}"
],
"context": {
"environment": "{{monitoring_context_environment}}",
"service": "{{monitoring_context_service}}",
"region": "{{monitoring_context_region}}",
"currentLoad": {{monitoring_context_currentLoad}},
"userCount": {{monitoring_context_userCount}},
"resourceUtilization": {
"cpu": {{monitoring_context_resourceUtilization_cpu}},
"memory": {{monitoring_context_resourceUtilization_memory}},
"disk": {{monitoring_context_resourceUtilization_disk}}
},
"timeOfDay": "{{monitoring_context_timeOfDay}}"
},
"metrics": {
"response_time_ms": {{monitoring_metrics_response_time_ms}},
"error_rate": {{monitoring_metrics_error_rate}},
"success_rate": {{monitoring_metrics_success_rate}},
"cache_hit_ratio": {{monitoring_metrics_cache_hit_ratio}},
"query_complexity": {{monitoring_metrics_query_complexity}},
"concurrent_requests": {{monitoring_metrics_concurrent_requests}}
}
}'),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sophra.org/api/nous/adapt/apply"
payload := strings.NewReader("\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\"")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sophra.org/api/nous/adapt/apply")
.header("Content-Type", "application/json")
.body("\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sophra.org/api/nous/adapt/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\""
response = http.request(request)
puts response.read_bodyNous > Adaptation
Apply Rules
POST
/
nous
/
adapt
/
apply
Apply Rules
curl --request POST \
--url https://api.sophra.org/api/nous/adapt/apply \
--header 'Content-Type: application/json' \
--data '
"{\r\n \"ruleIds\": [\r\n \"{{ruleId}}\"\r\n ],\r\n \"context\": {\r\n \"environment\": \"{{monitoring_context_environment}}\",\r\n \"service\": \"{{monitoring_context_service}}\",\r\n \"region\": \"{{monitoring_context_region}}\",\r\n \"currentLoad\": {{monitoring_context_currentLoad}},\r\n \"userCount\": {{monitoring_context_userCount}},\r\n \"resourceUtilization\": {\r\n \"cpu\": {{monitoring_context_resourceUtilization_cpu}},\r\n \"memory\": {{monitoring_context_resourceUtilization_memory}},\r\n \"disk\": {{monitoring_context_resourceUtilization_disk}}\r\n },\r\n \"timeOfDay\": \"{{monitoring_context_timeOfDay}}\"\r\n },\r\n \"metrics\": {\r\n \"response_time_ms\": {{monitoring_metrics_response_time_ms}},\r\n \"error_rate\": {{monitoring_metrics_error_rate}},\r\n \"success_rate\": {{monitoring_metrics_success_rate}},\r\n \"cache_hit_ratio\": {{monitoring_metrics_cache_hit_ratio}},\r\n \"query_complexity\": {{monitoring_metrics_query_complexity}},\r\n \"concurrent_requests\": {{monitoring_metrics_concurrent_requests}}\r\n }\r\n}"
'import requests
url = "https://api.sophra.org/api/nous/adapt/apply"
payload = "{
\"ruleIds\": [
\"{{ruleId}}\"
],
\"context\": {
\"environment\": \"{{monitoring_context_environment}}\",
\"service\": \"{{monitoring_context_service}}\",
\"region\": \"{{monitoring_context_region}}\",
\"currentLoad\": {{monitoring_context_currentLoad}},
\"userCount\": {{monitoring_context_userCount}},
\"resourceUtilization\": {
\"cpu\": {{monitoring_context_resourceUtilization_cpu}},
\"memory\": {{monitoring_context_resourceUtilization_memory}},
\"disk\": {{monitoring_context_resourceUtilization_disk}}
},
\"timeOfDay\": \"{{monitoring_context_timeOfDay}}\"
},
\"metrics\": {
\"response_time_ms\": {{monitoring_metrics_response_time_ms}},
\"error_rate\": {{monitoring_metrics_error_rate}},
\"success_rate\": {{monitoring_metrics_success_rate}},
\"cache_hit_ratio\": {{monitoring_metrics_cache_hit_ratio}},
\"query_complexity\": {{monitoring_metrics_query_complexity}},
\"concurrent_requests\": {{monitoring_metrics_concurrent_requests}}
}
}"
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify('{\r\n "ruleIds": [\r\n "{{ruleId}}"\r\n ],\r\n "context": {\r\n "environment": "{{monitoring_context_environment}}",\r\n "service": "{{monitoring_context_service}}",\r\n "region": "{{monitoring_context_region}}",\r\n "currentLoad": {{monitoring_context_currentLoad}},\r\n "userCount": {{monitoring_context_userCount}},\r\n "resourceUtilization": {\r\n "cpu": {{monitoring_context_resourceUtilization_cpu}},\r\n "memory": {{monitoring_context_resourceUtilization_memory}},\r\n "disk": {{monitoring_context_resourceUtilization_disk}}\r\n },\r\n "timeOfDay": "{{monitoring_context_timeOfDay}}"\r\n },\r\n "metrics": {\r\n "response_time_ms": {{monitoring_metrics_response_time_ms}},\r\n "error_rate": {{monitoring_metrics_error_rate}},\r\n "success_rate": {{monitoring_metrics_success_rate}},\r\n "cache_hit_ratio": {{monitoring_metrics_cache_hit_ratio}},\r\n "query_complexity": {{monitoring_metrics_query_complexity}},\r\n "concurrent_requests": {{monitoring_metrics_concurrent_requests}}\r\n }\r\n}')
};
fetch('https://api.sophra.org/api/nous/adapt/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sophra.org/api/nous/adapt/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode('{
"ruleIds": [
"{{ruleId}}"
],
"context": {
"environment": "{{monitoring_context_environment}}",
"service": "{{monitoring_context_service}}",
"region": "{{monitoring_context_region}}",
"currentLoad": {{monitoring_context_currentLoad}},
"userCount": {{monitoring_context_userCount}},
"resourceUtilization": {
"cpu": {{monitoring_context_resourceUtilization_cpu}},
"memory": {{monitoring_context_resourceUtilization_memory}},
"disk": {{monitoring_context_resourceUtilization_disk}}
},
"timeOfDay": "{{monitoring_context_timeOfDay}}"
},
"metrics": {
"response_time_ms": {{monitoring_metrics_response_time_ms}},
"error_rate": {{monitoring_metrics_error_rate}},
"success_rate": {{monitoring_metrics_success_rate}},
"cache_hit_ratio": {{monitoring_metrics_cache_hit_ratio}},
"query_complexity": {{monitoring_metrics_query_complexity}},
"concurrent_requests": {{monitoring_metrics_concurrent_requests}}
}
}'),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sophra.org/api/nous/adapt/apply"
payload := strings.NewReader("\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\"")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sophra.org/api/nous/adapt/apply")
.header("Content-Type", "application/json")
.body("\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\"")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sophra.org/api/nous/adapt/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "\"{\\r\\n \\\"ruleIds\\\": [\\r\\n \\\"{{ruleId}}\\\"\\r\\n ],\\r\\n \\\"context\\\": {\\r\\n \\\"environment\\\": \\\"{{monitoring_context_environment}}\\\",\\r\\n \\\"service\\\": \\\"{{monitoring_context_service}}\\\",\\r\\n \\\"region\\\": \\\"{{monitoring_context_region}}\\\",\\r\\n \\\"currentLoad\\\": {{monitoring_context_currentLoad}},\\r\\n \\\"userCount\\\": {{monitoring_context_userCount}},\\r\\n \\\"resourceUtilization\\\": {\\r\\n \\\"cpu\\\": {{monitoring_context_resourceUtilization_cpu}},\\r\\n \\\"memory\\\": {{monitoring_context_resourceUtilization_memory}},\\r\\n \\\"disk\\\": {{monitoring_context_resourceUtilization_disk}}\\r\\n },\\r\\n \\\"timeOfDay\\\": \\\"{{monitoring_context_timeOfDay}}\\\"\\r\\n },\\r\\n \\\"metrics\\\": {\\r\\n \\\"response_time_ms\\\": {{monitoring_metrics_response_time_ms}},\\r\\n \\\"error_rate\\\": {{monitoring_metrics_error_rate}},\\r\\n \\\"success_rate\\\": {{monitoring_metrics_success_rate}},\\r\\n \\\"cache_hit_ratio\\\": {{monitoring_metrics_cache_hit_ratio}},\\r\\n \\\"query_complexity\\\": {{monitoring_metrics_query_complexity}},\\r\\n \\\"concurrent_requests\\\": {{monitoring_metrics_concurrent_requests}}\\r\\n }\\r\\n}\""
response = http.request(request)
puts response.read_bodyBody
application/json
The body is of type object.
Response
200 - application/json
Successful response

